package com.ctshk.rpc.order.scenic.service;

import com.ctshk.common.dto.Result;
import com.ctshk.common.model.TokenUser;
import com.ctshk.common.vo.OrderRefundDTO;
import com.ctshk.rpc.order.scenic.dto.ScenicOrderRefundListDTO;
import com.ctshk.rpc.order.scenic.req.ScenicOrderRefundReq;
import com.ctshk.rpc.order.scenic.req.ScenicOrderRefundUpdateReq;

import java.util.List;

/**
 * <p>
 * 门票退款记录 服务类
 * </p>
 *
 * @author 张志朋
 * @since 2021-02-24
 */
public interface IScenicOrderRefundService{

    /**
     * 订单操作退款记录
     *
     * @param scenicOrderRefundReq
     * @return ScenicOrderRefundListDTO
     */
    Result<List<ScenicOrderRefundListDTO>> list(ScenicOrderRefundReq scenicOrderRefundReq);

    /**
     * 订单操作 - 退款记录 - 操作退款
     *
     * @param  scenicOrderRefundUpdateReq
     * @return Long
     */
    Result<Long> refund(ScenicOrderRefundUpdateReq scenicOrderRefundUpdateReq,TokenUser tokenUser);



    /**
     * 订单操作 - 退款记录 - 操作退款 提供给财务
     *
     * @param
     * @return Long
     */
    Result<Long> operateRefund(String refundNumber,Long userId);

    /**
     * 获取财务退款记录
     * @param orderNumber  订单列表
     * @return
     */
    Result<List<OrderRefundDTO>> getRefundList(String orderNumber);
}
